{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a457930a-46c4-4c04-b7b4-c97b3bad8089",
   "metadata": {
    "tags": []
   },
   "source": [
    "# 官方示例：手写数字识别\n",
    "\n",
    "> https://scikit-learn.org/stable/auto_examples/classification/plot_digits_classification.html#sphx-glr-auto-examples-classification-plot-digits-classification-py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "b0776cac-d8b8-40f6-a73a-b869a080057b",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification report for classifier SVC(gamma=0.001):\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      0.99      0.99        88\n",
      "           1       0.99      0.97      0.98        91\n",
      "           2       0.99      0.99      0.99        86\n",
      "           3       0.98      0.87      0.92        91\n",
      "           4       0.99      0.96      0.97        92\n",
      "           5       0.95      0.97      0.96        91\n",
      "           6       0.99      0.99      0.99        91\n",
      "           7       0.96      0.99      0.97        89\n",
      "           8       0.94      1.00      0.97        88\n",
      "           9       0.93      0.98      0.95        92\n",
      "\n",
      "    accuracy                           0.97       899\n",
      "   macro avg       0.97      0.97      0.97       899\n",
      "weighted avg       0.97      0.97      0.97       899\n",
      "\n",
      "\n",
      "Confusion matrix:\n",
      "[[87  0  0  0  1  0  0  0  0  0]\n",
      " [ 0 88  1  0  0  0  0  0  1  1]\n",
      " [ 0  0 85  1  0  0  0  0  0  0]\n",
      " [ 0  0  0 79  0  3  0  4  5  0]\n",
      " [ 0  0  0  0 88  0  0  0  0  4]\n",
      " [ 0  0  0  0  0 88  1  0  0  2]\n",
      " [ 0  1  0  0  0  0 90  0  0  0]\n",
      " [ 0  0  0  0  0  1  0 88  0  0]\n",
      " [ 0  0  0  0  0  0  0  0 88  0]\n",
      " [ 0  0  0  1  0  1  0  0  0 90]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 8 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn import datasets, svm, metrics\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "digits = datasets.load_digits()\n",
    "_, axes = plt.subplots(2, 4)\n",
    "images_and_labels = list(zip(digits.images, digits.target))\n",
    "for ax, (image, label) in zip(axes[0, :], images_and_labels[:4]):\n",
    "    ax.set_axis_off()\n",
    "    ax.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    ax.set_title('Training: %i' % label)\n",
    "    \n",
    "# To apply a classifier on this data, we need to flatten the image, to\n",
    "# turn the data in a (samples, feature) matrix:\n",
    "n_samples = len(digits.images)\n",
    "data = digits.images.reshape((n_samples, -1))\n",
    "\n",
    "# Create a classifier: a support vector classifier\n",
    "# 创建 SVC 分类器\n",
    "classifier = svm.SVC(gamma=0.001)\n",
    "\n",
    "# Split data into train and test subsets\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    data, digits.target, test_size=0.5, shuffle=False)\n",
    "\n",
    "# We learn the digits on the first half of the digits\n",
    "# 学习\n",
    "classifier.fit(X_train, y_train)\n",
    "\n",
    "# Now predict the value of the digit on the second half:\n",
    "# 使用分类器来预测\n",
    "predicted = classifier.predict(X_test)\n",
    "\n",
    "images_and_predictions = list(zip(digits.images[n_samples // 2:], predicted))\n",
    "for ax, (image, prediction) in zip(axes[1, :], images_and_predictions[:4]):\n",
    "    ax.set_axis_off()\n",
    "    ax.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    ax.set_title('Prediction: %i' % prediction)\n",
    "\n",
    "print(\"Classification report for classifier %s:\\n%s\\n\"\n",
    "      % (classifier, metrics.classification_report(y_test, predicted)))\n",
    "\n",
    "\n",
    "disp = metrics.ConfusionMatrixDisplay.from_predictions(y_test, predicted)\n",
    "disp.figure_.suptitle(\"Confusion Matrix\")\n",
    "print(f\"Confusion matrix:\\n{disp.confusion_matrix}\")\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
